perm filename NSF.J[DOC,TOB] blob sn#067530 filedate 1973-10-16 generic text, type T, neo UTF8
00100				ABSTRACT
00200	
00300	
00400	
00500	
00600	
00700	
00800	
00900	
01000	
01100	
01200	The Stanford Artificial Intelligence Laboratory proposes to undertake
01300	a  program in advanced automation over a period of one year at a cost
01400	of  $200,000.     The  laboratory  proposes  a  three  or  four  year
01500	investigation,  with  one  year  funding,  in  the  area  of computer
01600	integrated assembly systems.     This  project  unites  two  dominant
01700	forces in industrial automation:     computerization of manufacturing
01800	and programmable assembly automation.
01900	
02000	Extensive industrial and governmental studies and  consultation  have
02100	guided  the  concepts of this proposal. Several industrial needs have
02200	emerged from studies now underway.  One is  a  widespread  desire  of
02300	major industries for programmable automation.   Another is the desire
02400	to cut costs by better overall organization and understanding of  the
02500	manufacturing process, using computers as a tool for organization and
02600	information gathering.
02700	
02800	The  proposed  project  would  study  assembly   systems   from   two
02900	directions.    The  first  is  a  "top-down"  study including problem
03000	definition, characterization of descriptors of objects  and  assembly
03100	operations, automated assembly planning, simulation to aid design for
03200	assembly, and APT-like language design for assembly.  The  second  is
03300	an   evolutionary  and  constructive  effort  based  on  demonstrated
03400	abilities, adding incrementally to our existing system.  We feel that
03500	our  system and proposed extensions are valuable examples for systems
03600	useful in industry.  We maintain that any system study must be  based
03700	on  a planned series of experiments which demonstrate the feasibility
03800	of key modules in the  system,  and  the  adequacy  of  the  combined
03900	system.
     

00100	
00200	
00300	
00400	
00500	
00600	
00700			TABLE OF CONTENTS
00800	
00900	
01000	
01100	
01200	I	NATIONAL AND SOCIETAL NEEDS
01300	
01400	II	RESEARCH PLAN
01500		II.A	THE ASSEMBLY SYSTEM
01600		II.B	WHAT HAS BEEN DONE
01700		II.C	WHAT WE PROPOSE TO DO
01800	
01900	III	MANAGEMENT PLAN
02000		III.A	SCHEDULE
02100		III.B	MILESTONES
02200	
02300	IV	RELATED PROGRAMS AT THIS LABORATORY
02400		IV.A	PAST RESEARCH IN VISION
02500		IV.B	CONTINUING VISION RESEARCH
02600		IV.C	MANIPULATOR DEVELOPMENT
02700		IV.D	SYSTEM REQUIREMENTS
02800	
02900	V	RELATED PROGRAMS IN OTHER ORGANIZATIONS
03000	
03100	VI	UTILIZATION PLAN-DISSEMINATION OF RESULTS
03200	VII	APPENDICES
03300	
03400	VIII	VITAE AND BIBLIOGRAPHIES
03500	
03600	IX	CURRENT SUPPORT
03700	
03800		BUDGET
03900	
04000		REFERENCES
     

00100	I. NATIONAL AND SOCIETAL NEEDS
00200	
00300	
00400	The  contributions  that  advanced  automation  can  make  to enhance
00500	productivity in manufacturing are now  widely  appreciated.   Current
00600	interest  in  advanced  computer-oriented  automation  stems from two
00700	sources.   The first is the decreasing cost of  computation  combined
00800	with an improved understanding of how to apply computation to various
00900	aspects of manufacturing.  The second cause is the  realization  that
01000	many   current   manufacturing  operations,  primarily  assembly  and
01100	inspection, will require complex automation  methods  which  are  now
01200	research  techniques. The same considerations apply to the automation
01300	of tasks such as laboratory and medical procedures, but the  emphasis
01400	has  been (as ours will be) on manufacturing. A recent ARPA-sponsored
01500	study [Anderson 1972] in which we participated suggests the following
01600	major benefits from advanced automation:
01700		improved national productivity
01800		reduced prices
01900		increased product quality and uniformity
02000		customization of products
02100		increased  job  satisfaction.
02200	We would like to add just one comment. As we  have  seen  with  other
02300	technological  developments such as numerical-controlled tools, there
02400	will be things made which were previously impractical to make.  There
02500	is  widespread  agreement in the technical, industrial and government
02600	communities on the potential benefits of advanced automation.   There
02700	is  much  less  agreement  on  the  level of sophistication needed in
02800	automation hardware and software. While there are  large  application
02900	areas  in  which  specially  constructed  machines  or simple general
03000	purpose  devices  will  prove  optimal,  we  believe  that  the  most
03100	practical  solution for intermediate quantities (500 to 100,000) will
03200	be  to  develop  general  purpose  assembly  and  inspection  devices
03300	controlled by sophisticated programs in digital computers.
03400	
03500	These  conclusions  are supported by our consultation with industrial
03600	management who have manufacturing responsibilities.   Programmibility
03700	is  necessary even in the automobile industry which has large volume,
03800	but essentially custom assembles each car.  This has been  repeatedly
03900	emphasized in workshops and private conversations.
04000	
04100	Another  conclusion is that the process of improving the organization
04200	of  manufacturing  can  make   heavy   use   of   computer   systems.
04300	Computer-aided  design  is  already  in  heavy  use  in semiconductor
04400	industries, and making a beginning in other  industries.    Inventory
04500	and parts tracking are important facilities in the aircraft industry.
04600	Direct numerical  control  of  several  N/C  machines  by  a  central
04700	computer  is  also extensively used. Some effort has been directed in
04800	Europe towards  the  "group  technology"  approach  of  Opits,  which
04900	attempts  to  emphasize  commonality  by  using parts descriptions to
05000	group  items  which  are  alike.      Evolution   of   computer-aided
05100	manufacturing  depends  on  integrating these facilities and bringing
05200	more facilities under effective control.
05300	
05400	These  two  systems,  programmable  automation   and   computer-aided
05500	manufacturing,interact in a beneficial way.  An important part of the
05600	development process for programmable automation is the development of
05700	programming systems which actually program assembly devices.  Part of
05800	that can be done by "learning by doing".   However,  many  operations
05900	are  only  small  modifications  of  other  operations, so that it is
06000	desirable to be able  to  modify  the  assembly  program  instead  of
06100	reprogramming  entirely.      It  would  appear  that  most  assembly
06200	operations could be strung together  from  modifications  of  modules
06300	from  a  library  of standard assembly subroutines like inserting and
06400	screwing.  Inspection combined with assembly (which is made necessary
06500	for  quality  control  and  because  of  the  implicit  inspection in
06600	assembly operations) and error and contingency conditions lead to  an
06700	assembly control structure like a conventional computer program.
06800	
06900	The central computer will have parts designs and assembly operations.
07000	Why  should  these  not  be  used  to  supply information to assembly
07100	subroutines?   And should the designer have a system which allows him
07200	to design for automatic assembly by interacting with the system which
07300	programs the actual assembly device?  That  would  provide  a  useful
07400	experimental  system  for  cost and design automation, in addition to
07500	shifting some of  the  responsibility  for  programming  of  assembly
07600	devices  from  assembly  labor  to  professional staff with technical
07700	sophistication.   We emphasize the separation into an assembly system
07800	which  could  operate  stand-alone,  but  is better interfaced with a
07900	central computer system,  and  the  robot  programming  system  which
08000	depends  on  more  facilities  but is used infrequently when jobs are
08100	changed.
08200	
08300	There is  one  further  concept  in  common  among  presentations  of
08400	automation.  Automation  must  be incremental.   This is supported by
08500	numerous considerations: invested capital in existing plants,  design
08600	costs   for   conversion,   and  the  necessity  for  a  sequence  of
08700	understandable and predictably profitable steps along the path.
08800	
08900	We contend that inserting programmable assembly devices incrementally
09000	into   existing   factories   or   new  factories  with  only  slight
09100	modifications, demands more from the  programmable  device.   We  see
09200	this process at work as industrial robots of the Unimate class slowly
09300	develop more facilities. The simple robot described in the ISI  study
09400	[Anderson]  does  not  exist yet; it must still be proven feasible by
09500	demonstration.   We outline  below  some  arguments  about  cost  and
09600	productivity factors which follow from programmable assembly.   These
09700	arguments  follow  from  compatibility  with  current   manufacturing
09800	design,  from economies of scale, and from commonality of technology,
09900	and from desires for quality of product  and  predictability  of  the
10000	process.   Several  studies  have  indicated  some  priorities  among
10100	directions of automation.  The ISI study  [Anderson]  indicates  that
10200	less  than  20%  of  discrete  manufacturing  is  amenable to special
10300	purpose automation.  A Chrysler Corporation study indicates that  car
10400	assembly  labor  has  first  priority  in  automation; assembly plant
10500	direct labor is 40% of direct corporate labor.  The ISI study  quotes
10600	a   figure  of  75%  as  the  fraction  of  batch  produced  discrete
10700	manufactures.  One conclusion is that "the  emphasis  in  development
10800	should  be  on simple vision devices and on low-bandwidth tactile and
10900	force sensing feedback".  That  study  indicates  that  the  assembly
11000	process typically accounts for 50 percent of production cost.
11100	
11200	We  assume  that present manipulators have a small but stable market,
11300	and that most will have minicomputers  soon  (Sundstrand  does  now).
11400	Will  the  incremental  cost  of  touch,  force and visual sensors be
11500	offset by the opening of new  capabilities,  and  will  the  cost  be
11600	offset  by  reduced  cost  of  system design for machines which allow
11700	loose alignment tolerances? We estimate that touch and force  sensing
11800	will add about 5% to the price of current manipulators of the Unimate
11900	class.    We estimate that by 1977, the incremental  cost  of  visual
12000	sensors,  a  laser  ranging  device such as we use now,and additional
12100	memory requirements, will add about 15%-20%  to  current  manipulator
12200	prices. If labor costs continue to rise, part of the increase will be
12300	offset, but cost comparisons will not change  appreciably  over  that
12400	time  scale  unless significant new mechanical designs are made.    A
12500	conclusion is that sensor-equipped robots will be available at slight
12600	additional  cost.   We  will  discuss  the  benefits  of  incremental
12700	improvements to manipulators.
12800	
12900	We do not expect mechanical production costs to drop as  dramatically
13000	as  electronics  costs fall with integration. The most promising cost
13100	reduction development would be high-production standard modules  such
13200	as  robots.   As  an  example, consider the Stanford arm; produced in
13300	unit  quantity,  parts,  manufacturing   and   assembly   costs   are
13400	approximately $10K. The arm is much simpler than an automobile; there
13500	is no reason why it should cost more. A smaller, more  recent  design
13600	costs $3500 each in quantities of two.
13700	
13800	At what cost are robots economically viable?  This varies enormously;
13900	if they are serving a large and expensive machine, the  cost  can  be
14000	relatively  high.  Unimation  now  projects labor costs at $22,000 to
14100	$24,000 per man year averaged over the next 10 years, and  assumes  a
14200	payoff of 2 years for a projected acceptable cost level of $46,000. A
14300	robot with two arms, minicomputer control, force  and  touch  sensors
14400	could  be  constructed  for under $10K in quantities of 1000 now.  To
14500	summarize: two arms (new small Scheinman design) $2000 with hand; arm
14600	drivers  and  arm  interface electronics $1000; force and touch $800;
14700	small computer 8k memory  $4500;  total  $8300.   Assuming  that  the
14800	computer  price falls to $1200 by 1978, this will at least compensate
14900	for inflation.   Of course, these are small arms,  suited  for  parts
15000	assembly,  not  automotive body assembly.   The larger arms, assuming
15100	slight redesign for cost, would cost about $2500 in  units  of  1000,
15200	for  a  total system cost (not price) of $12300. This is the range of
15300	price of present transfer machines which have limited market  because
15400	they  have limited motion, no control, and are thus locked out of the
15500	economy of scale. There is a dynamic which leads to economy of scale;
15600	the   greater   the   versatility,   the  wider  is  the  market  for
15700	applications.  This will be true particularly in small production and
15800	job  shop  operations  which  have  been difficult to automate.   The
15900	larger the production, the more versatility for the same initial cost
16000	as  special  devices.    Also,  with  high volume, standardization of
16100	maintenance, and availability of parts and service are improved.  The
16200	quality of the device is also improved.
16300	
16400	The  economies of scale in production of assembly modules are matched
16500	by economies of intellectual  scale  in  development  of  design  for
16600	automation.       The   design  process  is  modularized  and  easily
16700	communicable; there is  a  common  discipline  which  can  be  widely
16800	absorbed; developments of many sources can be integrated. Programming
16900	and training done once for one machine  can  be  transferred  to  all
17000	machines  in  a  plant,  and even transferred nationwide.  Functional
17100	modularity has been emphasized in our studies. Modularity is  clearly
17200	possible  and  there  is  a  powerful  economic incentive to assemble
17300	widely varying systems from one, two, or three arm modules, force and
17400	touch   modules,  vision  and  ranging  modules,  with  planning  and
17500	monitoring modules.  This would also entail software modularity  with
17600	computer-aided  mechanical design and job specification for robots on
17700	a local or network time-sharing service.
17800	
17900	The alternative is special design for each operation. We expect  that
18000	at  some  point,  design  will be cheaper with standard robot modules
18100	than with special purpose designs, just as it is now more  economical
18200	to  use  mini-computer  controllers than special purpose controllers.
18300	Modularity has the  potential  to  reduce  design  time  and  improve
18400	predictability  of  design time and costs, permitting better planning
18500	and response  to  competition.    To  some  extent,  the  dehumanized
18600	industrial  worker  now fills the role of standard module, so that we
18700	do not expect discontinuous change. The continuity  with  decades  of
18800	experience  with  design  for  human  versatility  in assembly can be
18900	relied upon;  robots  with  some  versatility,  sensing,  contingency
19000	actions,  and  dexterity  will  provide a transition to newer schemes
19100	which will evolve more slowly. Another advantage of  general  purpose
19200	techniques is the ease with which the size of the robot can be scaled
19300	up or down. There appears to be no difficulty in making very large or
19400	very small assembly stations which use essentially the same programs.
19500	
19600	Versatile  assembly  devices  have  an efficiency advantage in medium
19700	scale and job shop production; their utilization  efficiency  can  be
19800	higher  because  versatility  allows  a  variety  of operations to be
19900	scheduled at  one  station.     The  availability  of  computers  for
20000	production  scheduling  will  allow  the  flexibility  to  be used to
20100	advantage.  Robots would also have longer life over which to amortize
20200	costs,  since  they  could  function  with greatly changed production
20300	operations, and evolve with new hardware and software modules.   They
20400	would  have  higher  reliability,  since  they would have monitoring,
20500	contingency action, and error recovery. They would be  self-aligning,
20600	self-calibrating, and self-testing.
20700	
20800	With simple devices,  inspection  and  assembly  operations  must  be
20900	broken  down  into small operations with transfer operations between.
21000	This introduces extra transfer devices with orientation-preserving or
21100	re-orienting  steps, and overlapping operations which can be combined
21200	in an advanced device. The extra cost of jigs and  fixtures,  and  of
21300	stopping   assembly  lines  adds  to  the  cost  of  special  purpose
21400	automation.  Robots can  cut  down  on  real  estate,  since  several
21500	operations can be done at one station.
21600	
21700	Because  of the adaptibility of work stations, production runs can be
21800	smaller, with less capital tied up in inventory and unused  machines.
21900	There can be better response to the needs of high technology industry
22000	which often requires small quantities.   There has been difficulty in
22100	meeting   the   tight   tolerances   necessary   for   operation   of
22200	non-intelligent devices.  It is hard to estimate the value of systems
22300	which work within current industrial tolerance, rather than requiring
22400	radical improvements in engineering  practice,  but  that  continuity
22500	does seem important.
22600	
22700	Serious issues arise in the development of robots with simple sensory
22800	systems. Some evaluation issues should be settled  by  demonstration,
22900	since much sharper analyses can be made this way.
23000	
23100	There  is  already  a significant degree of industrial involvement in
23200	computer-aided assembly.  GM Research Lab has  demonstrated  a  wheel
23300	mounting  operation  using  visual  alignment.  IBM has a small robot
23400	project.  Hitachi has demonstrated a robot with touch  and  a  system
23500	with visual identification of objects on a conveyor belt, with visual
23600	control of manipulation.  Can  industry  be  expected  to  adequately
23700	support  this  development?    Development  of primitive robots is an
23800	evolutionary process, not a single product development.  The area  is
23900	too  big;  the  payoffs  are  huge and the investment level is large.
24000	Also, traditionally, industry has been dependent on  suppliers.   But
24100	with the exception of IBM, the suppliers are smaller and less able to
24200	risk the  development.    Management  techniques  require  inordinate
24300	return  on  capital. An alternative support could come again from the
24400	military. The ARPA study and  the  history  of  numerical  controlled
24500	machine   tools   are  natural  consequences  of  the  vast  military
24600	procurement in technologically advanced products. In the case of N/C,
24700	funds could be diverted from an outmoded technology to development of
24800	devices which were essential to production plans for the future.   It
24900	is    high   technology   products   which   are   most   competitive
25000	internationally in the civilian economy.  The  record  of  government
25100	investment  in numerical control, solid state electronics, computers,
25200	and electro-optical devices has been very  productive.   However,  in
25300	large  scale  development  of  civilian  products  and  international
25400	markets, foreign governments have taken the lead.  The development of
25500	general  purpose  assembly  devices  will  benefit manufacturers in a
25600	broad spectrum of industry, particularly medium scale  manufacturing.
25700	It  is  an  appropriate  area  for governmental action to help meet a
25800	national need.
25900	
26000	Given sensor-equipped  robots  at  little  extra  cost  over  current
26100	senseless  robots,  they  will  have  visual  ability to sense color,
26200	strong contrasts in brightness,  recognize  known  objects  from  two
26300	dimensional outlines (top view of flat object) or three dimensionally
26400	using depth, to a certain extent they will be able to recognize three
26500	dimensional  objects  using monocular recognition.  They will be able
26600	to visually align  mating  parts  in  assembly  operations,  increase
26700	reliability by self- calibration and flaw and disaster detection, and
26800	permit large tolerances in parts transfer, even permitting  parts  to
26900	be  taken  from  a  bin.     Several  of  these abilities are not yet
27000	available in the laboratory, but with known conditions  and  objects,
27100	and  some  engineering (e.g.  color coding) are achievable within the
27200	time span of the proposed project.
27300	
27400	The major determinant of the economic impact of assembly robots  will
27500	be  the  extent  of their capabilities. Assessing and extending these
27600	capabilities is the principal goal of the proposed project.
27700	
     

00100	FIGURE 1:	PUMP ASSEMBLY LAYOUT
00200	
00300	A.	ARM
00400	B.	GASKET
00500	D.	PALLET
00600	E.	POWER SCREWDRIVER
00700	F.	TOOL STAND
00800	G.	HOLE IN TOOL STAND FOR PIN
00900	H.	SCREW DISPENSER
01000	I.	PUMP COVER
01100	J.	PUMP BASE
01200	L.	STOP TO LOCATE PUMP BASE PLATE
01300	M.	PLATE FOR PUMP BASE
     

00100			II.  RESEARCH PLAN
00200	
00300	II.A	THE ASSEMBLY SYSTEM
00400	
00500	An assembly system  is  not  just  a  programmable  assembly  device,
00600	important  as  that  is at this stage of evolution.   From an overall
00700	standpoint, the biggest problems in  automated  assembly  are  system
00800	problems.   We suggest two main facilities of an assembly system that
00900	relate to the total factory automation system:  a) design of products
01000	for  automated  assembly;  as described above, many assembly problems
01100	can be simplified enormously by design especially for  the  abilities
01200	of automated assembly systems. b) programming of assembly devices for
01300	new tasks.
01400	
01500	Our experiments in assembly lead us to suggest a form for  a  general
01600	assembly  system, a mini and maxi system.  The mini system is a small
01700	configuration minicomputer-based  assembly  station  (possibly  stand
01800	alone) tailored to a task by a choice of arm and vision modules, both
01900	hardware and software.  The maxi system is to  reside  in  a  factory
02000	central  computer  which  handles  scheduling  of  resources, design,
02100	communication, routing and tracking of parts, etc.  The  maxi  system
02200	interfaces  the  assembly  station  with  the  central  computer  and
02300	provides the capability for convenient design for automated  assembly
02400	and  convenient  reprogramming of the assembly station for new tasks.
02500	The maxi system takes advantage of design information in the  central
02600	system   and   large   file  system,  graphics,  and  problem-solving
02700	languages.  Its use is shared among many machines since reprogramming
02800	is  done  at intervals, only when tasks are changed.  The mini system
02900	is low cost, yet its behavior can be pre-planned and optimized by the
03000	maxi system, utilizing intelligent and efficient planning.
03100	
03200	We  suggest that programming robots requires an ease of communication
03300	with the system that depends upon advances in  strategy  modules  for
03400	assembly,  to  raise the level of the language used.  We also suggest
03500	that many system design problems  will  be  simplified  by  providing
03600	facilities  for  product  design  for  assembly.   The  designers can
03700	interact with the system which programs the assembly device, and with
03800	the aid of simulation modules, find out which operations are critical
03900	or impossible.
04000	
04100	The  essential  parts  of  the  system  are:        a) representation
04200	(descriptors) of shape and assembly  operations.      b)  Interactive
04300	systems including graphics. c) Strategies which allow generality.  d)
04400	Description of the assembly process in terms of program elements.  e)
04500	Arm and vision software and hardware modules.
04600	
04700	II.B	WHAT HAS BEEN DONE
04800	
04900	In brief, we have demonstrated in an assembly task some simple visual
05000	operations   combined   with  a  general  system  for  programming  a
05100	manipulator controlled by force and touch sensing.   The  manipulator
05200	was  designed  and  built according to software requirements based on
05300	our  earlier  experience.   We  have  made  significant  progress  in
05400	defining descriptors for assembly.
05500	
05600	Our previous work on representation of shape of complex  objects  for
05700	visual  description  and recognition provides a strong background for
05800	study of descriptors of objects and operations  for  assembly.    The
05900	representation  is based on a part/whole segmentation of objects into
06000	parts.  The choice of parts is crucial; in  our  representation,  the
06100	parts  are volume parts defined by cross sections along a space curve
06200	axis. That representation of primitive parts is based on a  formalism
06300	"generalized  translational  invariance".    Descriptions within that
06400	representation  can  be  constructed  symbolically,  or   with   some
06500	modification  to the geometric editor GEOMED [Baumgart 1972a].  These
06600	descriptions can now be  displayed  by  the  display  program  OCCULT
06700	[Baumgart  1972b].    The  ease  with which we can generate models of
06800	objects and the ability to obtain symbolic information  with  display
06900	techniques are strong points of our graphics techniques.
07000	
07100	Some of the preliminary efforts have been made in automating strategy
07200	generation.   The language design efforts have produced new  language
07300	features,  such  as  those  in  SAIL  [Feldman  1972].   Considerable
07400	discussion and experience have been gained by a course  and  research
07500	efforts using those language features.
07600	
07700	Our  first  major  task was assembly of an automobile water pump.   A
07800	film which shows the process in detail is available for distribution.
07900	We  describe the task in some detail to show the level of programming
08000	the system and the level  of  ability  of  the  programmable  device.
08100	Figure  1  shows  a  drawing  of  the assembly layout with pump base,
08200	cover, gasket and screws.  We  have  chosen  a  plausible  industrial
08300	environment  with tools in fixed places, screws in a feeder, and pump
08400	body and cover on a pallet.  The pump body is  mounted  on  a  plate,
08500	which  can  be  placed  anywhere on the table, since it is located by
08600	vision.  Then it is moved to a standard position determined by stops.
08700	Pins  are  inserted  into  screw  holes  in  the  pump  body to guide
08800	alignment of gasket and cover; if necessary the hand searches to seat
08900	the  pins.    The  gasket  is placed over the guide pins and visually
09000	inspected for correct placement.  The cover is expected to be  within
09100	about  a quarter of an inch of its fixed place on the pallet.   After
09200	locating the cover by touch, the hand places the cover over the guide
09300	pins.   The hand then picks up a hex head power screwdriver, picks up
09400	a screw from the feeder and inserts the screw; if necessary, the hand
09500	searches  to seat the screw.   A second screw is inserted.   The hand
09600	then removes the two pins and inserts four more screws.  Finally,  it
09700	tests that the pump impeller turns freely.
09800	
09900	Three forms of feedback are used, visual, tactile,  and  force.   The
10000	visual  feedback  is  provided  by  strictly special purpose programs
10100	which have no general interest.  In a later section we  show  how  we
10200	plan to generalize visual feedback capabilities and include them in a
10300	system like that  used  to  program  the  rest  of  the  task.    The
10400	manipulation  parts  of  the  assembly  were  programmed  in the Hand
10500	Language, HAL.  The actual program follows:
10600		BEGIN PUMP
10700		ALIGN			;COMMENT ALIGN PUMP BASE AT STOPS
10800		PIN P1 H1		;COMMENT PUT PIN P1 AT HOLE H1
10900		PIN P2 H2		;COMMENT PUT PIN P2 AT HOLE H2
11000		GASKET
11100		TOP
11200		SCREW1			;COMMENT PUT IN FIRST TWO SCREWS
11300		UNPIN H1 P1 H1A		;COMMENT REMOVE PIN P1 FROM HOLE H1
11400		UNPIN H2 P2 H2A		;COMMENT REMOVE PIN P2 FROM HOLE H2
11500		SCREW2			;COMMENT INSERT LAST FOUR SCREWS
11600		TEST
11700		END
11800	
11900	Each of the commands is a macro, an example of which is defined here.
12000	What  follows  is  a Hand Language program to insert a pin in a hole.
12100	The position of the hand to pick-up the pin is refered to as P.  This
12200	position is defined by moving the hand to the location of the pin and
12300	typing "HERE P"; the program then reads the current position  of  the
12400	hand  and  stores  it  in  P  ("learning  by  doing").  Similarly the
12500	position just above the hole where  the  insertion  is  to  begin  is
12600	defined by "HERE T". This is done with the pin in the hand.
12700		DEFINE PIN
12800		MOVE P 			;GO TO THE PIN
12900		CLOSE 0.1		;PICK UP PIN
13000		MOVE T 			;GO TO THE HOLE
13100		SEARCH .07		;SET SEARCH INCREMENT 
13200		L1:	MOVE T 		;GO TO THE HOLE
13300		STOP [0 0 -50]		;SET UP STOP ON FORCE CONDITION
13400		CHANGE [0 0 -1] 0.6  	;TRY TO GO DOWN WITHOUT RESISTANCE
13500		SKIPE 23		;SKIP IF NO FORCE ENCOUNTERED
13600		AOJ L1			;ADD SEARCH INCREMENT AND JUMP
13700		STOP [0 0 -60]		;SET UP STOP ON FORCE CONDITION
13800		CHANGE [0 0 -1] 0.7 	;SHOULD MEET SOME RESISTANCE
13900		SKIPN 23		;SKIP IF FORCE ENCOUNTERED
14000		AOJ L1			;ADD SEARCH INCREMENT AND JUMP
14100		SAVE H			;REMEMBER WHERE HOLE ACTUALLY IS
14200		OPEN .5			;RELEASE PIN
14300		CLOSE -.1 		;CHECK THAT IT IS STILL THERE
14400		OPEN 1			;RELEASE AGAIN
14500	The pin should go into the hole without  resistance,  then  encounter
14600	resistance.   If  it  does  not  encounter  resistance  at the proper
14700	height, then the pin is off the pump body and the search resumes.
14800	
14900	The most obvious form of programming  robots  is  that  in  use  with
15000	current  industrial robots, "learning by doing".  The robot is led to
15100	end points of a trajectory or along a path by an operator. As we note
15200	from  the  example  shown,  positions  for  the  pump  assembly  were
15300	specified  in  that  way.   This  facility is embedded in our general
15400	interactive language system, which is not special to the pump task.
15500	
15600	"Learning  by  doing" techniques are limited to tasks with positional
15700	control only.        Where force control is  necessary,  the  control
15800	program must know in what way to control forces, i.e.  what forces to
15900	exert or null along  which  direction  vector.      For  example,  in
16000	inserting a rod into a hole, transverse forces should be nulled. Such
16100	tasks require specifying a trajectory with additional symbolic  force
16200	control information.     Since arm control will be primarily based on
16300	minicomputers in new designs, a a small interactive system such as we
16400	use  is  quite  natural.  For  any  task involving a sequence of such
16500	operations, the interactive system allows the operator to choose from
16600	a  menu of operations and proceed step by step to assemble a sequence
16700	of these operations which have been verified.  Checking  the  success
16800	of  these operations could use simulation if necessary to avoid tying
16900	up a production machine. Useful modules like inserting a screw  would
17000	be  saved  as macros so that subsequent programming sessions would be
17100	much  simplified,  dealing  with  combinations  of  such  high  level
17200	modules.   The macros can have arguments, so that one basic operation
17300	can be used in a variety of situations,  and  further,  our  software
17400	allows  modifying  trajectories  so  that a planned trajectory allows
17500	considerable variation in execution, without replanning. The  ability
17600	to  transform  positions  and  orientations  means  that  an assembly
17700	programmed for one position and orientation can be performed anywhere
17800	in  the  working space without reprogramming.    Ail these facilities
17900	exist in our interactive system for the hand.
18000	
18100	What elements of the system are general or generalizable?  We see the
18200	pin  insert and screw insert as generally useful modules which depend
18300	on the search module which depends  on  lateral  and  vertical  force
18400	feedback.   The  use  of  tools  such  as  the power screwdriver, the
18500	screwfeeder, and guide pins are generally useful.  In  general,  jigs
18600	are special purpose but often inexpensive.  The operation of location
18700	and orientation by touch depended upon a general system facility, but
18800	required  a  special program for the special shape. The hand language
18900	and interactive system are general enough for a single arm.
19000	
19100	There  appear  to  be  several  evolutionary  stages  at  which   the
19200	production engineer can be aided greatly by assembly system software.
19300	The first is through a general programming language.  The  second  is
19400	through the aid of model-based facilities and simple strategies which
19500	raise the level of language for the user.  At this level, the  system
19600	is  probably  acceptable  to  program, and allows use of the assembly
19700	system to simulate the assembly process as an aid  in  designing  for
19800	automated  assembly.   At  a  later  stage, much of the detail can be
19900	eliminated by strategy programs  which  accept  commands  at  a  high
20000	level, at least as high a level as an instruction manual.
     

     

00100	II.C	WHAT WE PROPOSE TO DO
00200	
00300	We discuss the next steps by considering the extensions to the system
00400	which would allow us to accomplish a task similar to  pump  assembly,
00500	and  a  much  more  difficult assembly task, assembly of a two stroke
00600	gasoline engine.     We  estimate  that  mechanical  assembly  of  an
00700	alternator  from  palletized  form would require only about ten hours
00800	reprogramming after  building  a  jig  to  hold  the  bottom  of  the
00900	alternator.  If  parts  were not palletized and vision were required,
01000	the special vision program would require several  weeks  programming.
01100	This emphasizes the importance of vision language system development.
01200	
01300	Assembly  of  a  two cycle gasoline engine is different and much more
01400	difficult.  What new operations would be required?  A vise, perhaps a
01500	universal  vise,  a  sleeve  to  insert  roller  bearings  and seals,
01600	manipulating a roller to  apply  liquid  gasket  material,  universal
01700	joint  and  long shaft hex head drivers, aligning and inserting shaft
01800	keys, generalizing orientation and location by touch, improving touch
01900	and  force  sensing  (particularly  peripheral  touch) and use of two
02000	hands.   Programming a new operation of the complexity of inserting a
02100	screw  and  torquing  it  down  requires  of the order of eight hours
02200	programming.
02300	
02400	How much is special purpose and how  much  general?     Most  of  the
02500	additions  we  have  just  mentioned  are general.   Certain jigs and
02600	sleeves will be necessary, just as they are for assembly  by  humans.
02700	Most  of  the  operations  are  of  the form "put x into y"; they are
02800	special purpose to the extent  that  special  ways  of  gripping  are
02900	necessary  to  avoid  obstacles.    Initially, human interaction must
03000	specify those special grasping procedures, but with a second stage of
03100	development  of obstacle avoidance modules and strategy modules, much
03200	of the difficulty can be eliminated.
03300	
03400	These observations lead us to propose steps  which  will  lead  to  a
03500	better  understanding of the design of assembly systems.   One effort
03600	includes:
03700	
03800				Top-Down system design		
03900			GOAL-DIRECTED, MODEL-DRIVEN SYSTEM
04000		characterize objects and assembly operations by descriptors
04100			(representation)
04200		problem definition of a class of assembly systems
04300		strategies and interactive system for automating programming
04400			of assembly operations in terms of our primitives
04500		APT-like language design
04600		gedanken assembly experiments and generalize requirements
04700	
04800	We  have  seen  that  a  general  interactive  language  system  adds
04900	considerable  generality  to  a  programmable  assembly  system.   To
05000	greatly extend this generality and thus the ease of programming,  the
05100	system should be model- driven.   We already have one example of such
05200	a visual system in our laboratory, which has been used for two visual
05300	domains, outdoor roadside scenes and cardiac angiograms [Yakimovsky].
05400	Only a change of models, which  were  experimentally  obtained  by  a
05500	learning  system, was necessary to go to the second domain.  There is
05600	work  underway  which  combines  goal-direction  with  a  model-based
05700	system.
05800	
05900	For  this  aim of generality, the investigation of representation and
06000	implementation of a wide range of  examples  of  object  descriptions
06100	within  the  representation  should  be  carried out.   These will be
06200	necessary for a system  which  produces  strategies  for  programming
06300	operations  in terms of plausible primitives, from input at the level
06400	of an instruction manual.  Human interaction will  be  necessary  for
06500	special problems.
06600	
06700	It  is  clear  that we must cycle a few times through top-down system
06800	design and evolutionary system building.    That  experience  is  the
06900	basis  on  which  to  design  an  APT-like language for assembly.  Of
07000	course, there should be computer science  inputs  into  the  language
07100	design.  Even  good  design  from  a system software standpoint could
07200	avoid some of the mistakes of APT.
     

00100	EVOLUTION OF SYSTEM
00200		select real experiments from gedanken experiments, based on
00300			generality of modules, economic significance,
00400			feasibility
00500		design and implement necessary modules
00600		incorporate and test system.
00700	
00800	The  examples  above illustrate these procedures.   In many cases, we
00900	cannot proceed far without design and  implementation  of  tools  and
01000	modules.   For example, an important need is for hands with more than
01100	two fingers and greater dexterity than now possible.  We don't really
01200	know  what will be possible, how to characterize the behavior of such
01300	hands, how to program them.  Attempts to  characterize  them  may  be
01400	optimistic and unrealistic.  The situation may be different from that
01500	of machining parts, for which we expect current machines to  be  used
01600	for  a  long time to come, and for which much experience is available
01700	with machines and techniques.    We  must  share  efforts  between  a
01800	"top-down"  design  and  an  evolutionary  effort producing an actual
01900	system to keep system design honest.
02000	
02100	Our previous discussion provided motivation for important incremental
02200	extensions  of  our  existing  system,  to  two arms in coordination,
02300	obstacle avoidance, tools, improved touch and force sensing, and more
02400	general  location  by  touch. Current work is involved with extending
02500	the hand progrmamming language to include more than one arm. Problems
02600	of  synchronization  and  coordinated  motion will be provided for. A
02700	module  for  obstacle  avoidance  in  trajectory  planning  will   be
02800	included.    Later,  the  hand  language  will probably be the output
02900	language for a higher level language for manipulation,in which  tasks
03000	such  as  inserting,  testing,  and  mating  will be expressible in a
03100	simple manner.   We will generalize the  operation  of  locating  and
03200	orienting by touch, and improve the touch and force sensors.
03300	
03400	To  simplify  and  systematize  the  programming  of  visual feedback
03500	operations, an interactive vision language system  will  be  designed
03600	and  implemented.     We  plan  that  it  resemble the hand language,
03700	embedding  the  useful  set  of  visual  operators  in  a  convenient
03800	interactive  system.    It  will  be  based  on current design ideas,
03900	elaborated by a series of experiments.     We  intend  eventually  to
04000	automate  programming  of visual feedback, by using prediction of the
04100	projected appearance of edges and surfaces of  objects  from  models,
04200	using  our representation and symbolic display facilities.    We will
04300	use these predicted curves as guides for a set of operators  intended
04400	for finding a predicted curve in a small window of an image.  This is
04500	one step toward broad generality, moving to a model-based system.
04600	
04700	We will transfer our assembly system to include the mini system in  a
04800	minicomputer  which  we  are  acquiring.    There is the beginning of
04900	user's group sharing the  same  minicomputer  (GM  Research  Lab,  3M
05000	Research Lab, JPL, and MIT Artificial Intelligence Lab).  We can show
05100	the relevance of our research to  low  cost  systems  for  industrial
05200	applications,   by   direct  transfer  of  our  research  results  to
05300	industrial observers  and  laboratories.    Our  hand  language,  arm
05400	control  and  arm  trajectory  planning  software  are suitable for a
05500	variety of arms, including the Unimate.
05600	
05700	This system can be thought of as a model for a programmable  assembly
05800	device.    Each  assembly  station  will  include  a minicomputer and
05900	manipulators with cameras combined as modules in a system to  suit  a
06000	given  task.   The  software  will  be  modular to accomodate varying
06100	hardware configurations.  The minicomputer performs servo control and
06200	contingency  actions  for  the arm, and elementary visual operations.
06300	Touch and force sensing operations will be included.
06400	
     

00100	III. MANAGEMENT PLAN
00200	
00300	The proposed research  will  be  carried  out  by  academic  faculty,
00400	research staff and students of the Artificial Intelligence Laboratory
00500	Stanford University.  The responsibility for planning,  coordinating,
00600	and supervising the proposed work will be with:
00700		Prof Jerome  Feldman
00800		Artificial Intelligence Laboratory
00900		Computer Science Department
01000		Stanford University
01100		Stanford, California, 94305
01200	
01300	He will devote 1/6th of his time to this project.
01400	
01500	The organization conducting the proposed research is:
01600		Artificial Intelligence Laboratory
01700		Computer Science Department
01800		Stanford University
01900		Stanford, California, 94305
02000	
02100	Stanford University is a non-profit educational institution
02200	incorporated under the laws of the state of California.
02300	
02400	The legal-fiscal agent is:
02500		Lester D. Earnest
02600		Artificial Intelligence Laboratory
02700		Computer Science Department
02800		Stanford University
02900		Stanford, California, 94305
03000	
03100	
03200	III.A	SCHEDULE
03300	
03400	The following schedule shows the approximate distribution of effort
03500	among the principal tasks:
03600	
03700	Top-Down System Study		50% of effort
03800		Strategies
03900		Language Design
04000		Descriptors
04100		Gedanken Experiments
04200		Needs
04300	
04400	Evolutionary System Building	50% of effort
04500		Visual feedback
04600		Arm Hardware
04700		Arm Software
04800		Task Execution
04900		Mini system
05000	
05100	
05200	The personnel involved are:
05300	
05400	Prof  J.A.Feldman  will assume overall coordination, and guide design
05500	of the language for assembly.
05600	
05700	Dr. T.O.Binford will guide development of  the  vision  language  and
05800	visual  feedback  for  assembly,  extend  work in representation, and
05900	direct the top-down system study.
06000	
06100	Dr.  R.Paul  will  implement  software  for  the   second   arm   and
06200	coordination of two arms, will direct efforts in collision avoidance,
06300	and extend the hand language.
06400	
06500	V.Scheinman will design and build tools, special hands and arms,  and
06600	contribute to hardware study for the top-down study.
06700	
06800	Prof.  C.C.Green  will  guide  efforts in strategies for the top-down
06900	study. (Prof Green will not be supported by the proposed contract.)
07000	
07100	K.K.Pingle will provide system support and some implementation of the
07200	vision language primitives.
07300	
07400	R.C.Bolles  will  perform an advanced assembly task as the first in a
07500	series of planned experiments.
07600	
07700	R.H.Taylor will formalize a class  of  assembly  tasks  in  terms  of
07800	descriptors  and  obtain  strategies  in terms of assembly primitives
07900	from input at approximately the level of an instruction manual.
08000	
08100	A third student will work on descriptors and the vision language.
08200	
08300	
08400	III.B	MILESTONES
08500	
08600	During the first nine months we will improve the  problem  definition
08700	and  present  a  coherent  structure  for the following phases of the
08800	project.
08900	
09000	After  the  first  two thirds of the contract, we will understand and
09100	have solved the major problems in two  hand  coordination,  and  have
09200	operating software.
09300	
09400	A  class  of easily-defined objects will be described in terms of our
09500	descriptors, and will be encoded for later strategy work.
09600	
09700	At the end of the period, we will  have  a  formalization  and  major
09800	progress  on  a  strategy  program which will go from language at the
09900	level  of  an  instruction  manual  to  a  sequence  of  hypothesized
10000	primitive actions which seems adequate and plausible for execution of
10100	the specified task.
10200	
10300	Significant sub-assemblies of a two-stroke gasoline  engine  will  be
10400	reliably  operating,  using  primitive  versions  of the hand and eye
10500	languages.
10600	
10700	A primitive vision language will be operative, including  correlation
10800	operators, hole detectors, and edge and curve matching.
10900	
11000	A major part of the conversion to the mini system will be performed.
     

00100	IV	RELATED PROGRAMS AT THIS LABORATORY
00200	
00300	IV.A	PAST RESEARCH IN VISION
00400	
00500	Although  we  propose  an  entirely new direction for the laboratory,
00600	past and continuing research form an important background.   Research
00700	in  computer  vision  has  progressed  so  that most of our effort is
00800	directed toward vision  in  real  world  scenes.    We  outline  past
00900	research,  including  analysis of some outdoor scenes, interpretation
01000	of scenes with curved objects, work on visual  feedback,  development
01100	of useful modules, and a study of sensor systems.
01200	
01300	In  understanding  outdoor  scenes  or  in performing visual feedback
01400	operations  for  industrial  environments,   it   is   important   to
01500	incorporate  semantics  for  the  individual  problem  domain  and to
01600	provide simple ways of reprogramming for different problem domains. A
01700	working  version of such a system [Yakimovsky] has been successful in
01800	segmenting and labelling regions in two  different  problem  domains,
01900	outdoor  scenes  and  cardiac angiograms.  It was not difficult to go
02000	from outdoor scenes to angiograms; some  changes  were  made  in  the
02100	region  descriptors,  but  the  major  changes were made in the world
02200	model by an interactive learning process from sample  pictures.   The
02300	system  sequentially  merges regions with the weakest boundary first.
02400	In initial steps it  proceeds  without  semantics.    Then,  with  an
02500	intermediate  number of regions, it estimates the best interpretation
02600	using a world model of two-dimensional image  properties.   A  linear
02700	evaluation  of  interpretation includes not only region properties in
02800	isolation (i.e. sky is blue) but the properties of its boundary  with
02900	other  regions  (sky is brighter than trees).  This is a "first-order
03000	semantics" of relations.  From analysis of some examples, the  system
03100	performs much better with semantics than without.
03200	
03300	Understanding  outdoor  scenes  is  a  more  complex  task  than many
03400	industrial visual  operations,  but  it  has  utility  for  planetary
03500	exploration;  it  is  also  a  useful  exercise for developing color,
03600	texture, and stereo operations. Bajcsy analyzed outdoor scenes with a
03700	combination of color and texture region analysis [Bajcsy 1972]; depth
03800	cues were taken from the gradient of texture. An attempt was made  to
03900	obtain   consistent   interpretations  by  making  three  dimensional
04000	interpretations, and confirming boundaries by independent properties.
04100	Natural  objects  and natural scenes have been used for our work with
04200	motion   parallax   [Nevatia   in   draft]    and    stereo    vision
04300	[Quam,Hannah].These are complementary techniques of depth perception.
04400	Motion  parallax  can  be  used  for  planning  of   navigation   and
04500	characterizing  large scale terrain features, since it provides large
04600	baselines.
04700	
04800	Our past work on visual feedback [Gill 1972] in stacking  blocks  and
04900	inserting  objects  in  holes  is  directly  relevant  to  vision for
05000	assembly.   The issues involved are:    coordinating  hand  and  eye,
05100	utilizing  incremental  accuracy of vision and manipulation, accurate
05200	prediction to limit search,  and  limiting  accumulation  of  errors.
05300	Visual  guidance  in  picking  up  objects  and stacking or inserting
05400	objects overcomes errors in the visual and  arm  coordinate  systems,
05500	and errors in correspondence between the two coordinate systems. This
05600	was done under realistic conditions, with the hand still holding  the
05700	object  and  in view; the system predicts the appearance of edges and
05800	corners within a small window around the edges  to  be  aligned,  and
05900	uses a corner/edge finder to determine alignment error. The arm makes
06000	accurate incremental error correction.  If predictions  can  be  made
06100	accurately, the search window can be small, which increases the speed
06200	of response and decreases possibility of confusion with  other  areas
06300	of  the  scene.  A major limitation to accuracy of prediction (and to
06400	long-term reliability in the  industrial  environment)  is  drift  of
06500	calibration.      That  work  incorporates  calibration  updating  by
06600	self-calibration to coordinate hand and eye  coordinate  systems  and
06700	provide  for  reliability,  as  well as to limit search by accurately
06800	predicting expected features. Visual feedback with stereo  vision  is
06900	much  more  powerful than without; we have demonstrated stereo visual
07000	feedback in a program [Binford unpublished].   A  corner  finder  for
07100	visual  feedback  with  polyhedra has been developed which is able to
07200	function well under realistic conditions of low contrast,  with  more
07300	complex backgrounds [Perkins].
07400	
07500	Another  aspect  of  vision  with  direct  application  to industrial
07600	environments is explored in our work with  curved  objects.   Current
07700	programs use depth information to make useful descriptions of objects
07800	like a doll, a toy horse, a snake, or a glove [Agin].   Programs  can
07900	segment these objects into parts like legs, arms or fingers, and link
08000	these  parts  together  to  form  descriptions  of   entire   objects
08100	[Nevatia].  These operations are precursors to a recognition process.
08200	The work depends on a new representation of shape [Binford  1971]  in
08300	terms of volume components and a part/whole segmentation.   Primitive
08400	parts are described by an axis which is a  space  curve,  and  normal
08500	cross  sections  along  the  axis.   The representation is based on a
08600	formalism,  "generalized  translational  invariance".      There  are
08700	significant  theoretical  reasons  why this representation leads to a
08800	natural choice of parts by simple procedures, in distinction to other
08900	suggested  representations.     We  developed  a laser ranging device
09000	[Binford 1970,Agin] which was  operational  two  years  ago.   It  is
09100	particularly  interesting  that  the device adds a cost of only about
09200	$400 to the cost of a visual system.
09300	
09400	We have a set of visual modules to be used in  a  goal-directed  way.
09500	These  modules  answer  questions  which  arise  in  practical visual
09600	feedback tasks, and in analysis of outdoor scenes.  Are  there  color
09700	edges  in a selected window? Are there edges in brightness?   What is
09800	the color of the region in the  window?   Several  preliminary  color
09900	region  analysis  programs have been developed [Binford, unpublished,
10000	Bajcsy 1972].   An edge operator [Hueckel 1969]  and  a  region-based
10100	corner/edge  finder  [Gill 1972] both operate on small windows of the
10200	scene, as directed by a higher level. An edge  verifier  is  used  to
10300	confirm  or  reject  edges  predicted  from context [Tenenbaum 1970].
10400	Color identification has long been demonstrated. Recently, a  program
10500	has  been  implemented  [Thomas  unpublished] based on Land's Retinex
10600	model of color constancy in vision, which defines  a  color  triangle
10700	from  ordering  of  brightnesses.     The  center  of the triangle is
10800	designated as white. The program shows a color constancy  similar  to
10900	humans;  table top scenes are assigned colors reasonably well under a
11000	variety of lighting with different spectra:   sunlight,  flourescent,
11100	and incandescent.
11200	
11300	A  study  of  visual  and  depth ranging sensors has been carried out
11400	which provides a background for choosing sensors and  interface,  and
11500	making  cost  estimates  [Binford  1972,  Earnest  1967].     We have
11600	maintained a calibrated hand and  vision  system  for  several  years
11700	[Sobel 1970], and have developed self-calibration techniques with one
11800	and two eyes [Yakimovsky unpublished, Hannah 1972, Gill 1972].
11900	
12000	A system for understanding scenes of blocks  from  single  views  has
12100	been  implemented  [Falk  1970]; it segments objects, matches against
12200	internal  models,  predicts  appearance  from  its  assumptions,  and
12300	searches  for  verification  and contradiction based on the predicted
12400	image.  Support and spatial relations are also obtained.   There  has
12500	been  past  work  on  programs  to  obtain  line drawings as input to
12600	recognition systems.  An earlier system was based on limited  context
12700	of expecting continuation of edges at vertices and predicting missing
12800	edges in certain expected configurations [Grape 1970]. A more  recent
12900	approach has been to use models within the process of generating line
13000	drawings, so that the most efficient  next  guess  can  be  made  and
13100	context  used  intrinsically in the formation of line drawings [Grape
13200	1973].
13300	
13400	IV.B	CONTINUING VISION RESEARCH
13500	
13600	While continuing research activities are not to be supported  by  the
13700	proposed project, in all likelihood, the research will suggest useful
13800	programs for the assembly system, particularly work in recognition of
13900	complex  objects  using  depth  data.   The computer now has symbolic
14000	internal models of objects.  We are now in a  position  to  recognize
14100	objects  such  as  a glove, a hammer, etc.   We will immediately deal
14200	with matching descriptions for recognition.  The important extensions
14300	we  wish  to  deal  with  are  occlusion and access to a large visual
14400	memory.    These will involve matching of  partial  descriptions  and
14500	encoding  of  partial  descriptions  as  indices  to a small class of
14600	similar shapes, which can then be compared in more detail.    We  are
14700	working toward making the hardware stable enough that it can maintain
14800	calibration, and software streamlined so that the  depth  measurement
14900	system  can be integrated with other hand/eye facilities.   We intend
15000	to apply large parts of our programs for description and  recognition
15100	of curved objects using only monocular intensity information. This is
15200	a much harder problem, but within our representation, shares much  of
15300	the  same  code,  and  relies  on  the same conceptual basis of local
15400	three-dimensional models.
15500	
15600	
15700	There  is  a  growing  effort  on  navigation  of vehicles in outdoor
15800	scenes.   While this is  not  directly  relevant  to  the  industrial
15900	environment,  it  does  reflect  the  growing  involvement in complex
16000	visual tasks, and will lead to further development of  an  integrated
16100	visual system.
16200	
16300	IV.C	MANIPULATOR DEVELOPMENT
16400	
16500	Manipulator  research  began  at the Stanford Artificial Intelligence
16600	Laboratory in 1965 with the acquisition of  a  Rancho  Orthotic  Arm.
16700	This  arm  was  interfaced in such a way that the computer could read
16800	the joint positions by means of potentiometers and drive the  arm  by
16900	means of a voltage, pulse rate modulated signal for each joint.   Two
17000	solution  programs  were  written:    one  to  give  the  rectangular
17100	coordinate position of the hand knowing the six joint angles, and one
17200	to give the joint angles  knowing  the  desired  x,y,z  position  and
17300	orientation  of  the  hand.  These programs were then combined with a
17400	servo program to move the hand.
17500	
17600	The servo program represents  two  key  concepts  of  all  subsequent
17700	manipulator  research  at  this  laboratory:  1) To provide a digital
17800	computer with all sensory  inputs,  initially  joint  positions,  but
17900	later velocity, force and touch measurements. 2) The utilization of a
18000	programable digital computer  to  take  the  sensory  inputs  and  to
18100	provide  basic  control  output to the manipulator, in our case joint
18200	torque.  Initially the sensory input of joint angles was to provide a
18300	position  servo with a sampling rate of 60 cycles per second. The arm
18400	control has been changed many times since, a simple task in the  case
18500	of  a program, but difficult in the case of a hard wire servo system.
18600	This system was used by Wichman, Pingle and Singer in 1968 to provide
18700	a  program which could pick-up, sort and stack blocks, and in a first
18800	attempt at visual feedback.
18900	
19000	At this time Pieper considered the  kinematics  of  manipulators  and
19100	developed  a  classification  scheme  for all possible arms and their
19200	analytic solvability.   He  concluded  his  work  by  implementing  a
19300	trajectory based collision avoiding program. Although slow, this work
19400	demonstrated the need for trajectory control of the arm.
19500	
19600	Kahn followed Pieper with a study of the dynamics of manipulators and
19700	developed  a  "bang-bang"  servo for a new hydraulic arm.   This arm,
19800	still  at  the  laboratory,  was  developed  as  a  high  performance
19900	manipulator.
20000	
20100	By 1970 a general purpose program capable of manipulating plane faced
20200	bodies was implemented. This program was used in the initial  version
20300	of  the  "Instant Insanity" program where all possible reorientations
20400	of the four colored cubes were required in the puzzle solution.
20500	
20600	Our present arm, the result of a continuing design project,  replaced
20700	the  Rancho Arm in 1970. This arm, like its predecessor is controlled
20800	by a digital servo program running under the time sharing system. The
20900	new arm was used in the "Instant Insanity" demonstration in 1971.
21000	
21100	As this arm is driven by electric motors through high efficiency gear
21200	reductions it is possible to predict the torque exerted at each joint
21300	in  terms  of drive level. Based on kinematic analysis it is possible
21400	to calculate the joint torques necessary to produce a given force  at
21500	the  hand.  Further,  for  the  hand to exhibit degrees of freedom of
21600	motion, various joints are selected to be "free," that is, to have no
21700	position  feedback  applied  to them. By exerting a force at the hand
21800	and providing that certain degrees of freedom exist it is possible to
21900	perform  a  much wider class of tasks than simple positional control,
22000	for instance screwing in screws, mating parts,  inserting  tools  and
22100	turning cranks.
22200	
22300	Positional  accuracy  at  the  hand  is  typically  0.1  inches  with
22400	repeatability of 0.02 inches. Force control at the hand is within  10
22500	ounces. The data rate to run the arm from an assembled arm program is
22600	of the order of 100 bits/second.
22700	
22800	Touch sensors on the fingers allow the hand to sense objects  without
22900	disturbing  them.  When  activated  the arm will stop when any of the
23000	sensors touch.  Branching arm instructions can test the state of  the
23100	sensors  and  modify the execution of an arm program. When screwing a
23200	nut onto a bolt, for instance, the hand is first  centered  over  the
23300	bolt by touching it.
23400	
23500	A  second  arm  of  the  same type, with only minor modifications, is
23600	currently being interfaced to the computer. Both arms  will  share  a
23700	common  work  space  and  will  be  able  to be used individually, or
23800	together for two-handed tasks. This should increase the scope of  our
23900	manipulation work by some orders of magnitude. It may be possible for
24000	many assembly workers to work with their eyes closed but it would not
24100	be possible, in most cases, to work with only one arm.
24200	
24300	Control   of  the  arms  is  achieved  by  a  series  of  high  level
24400	instructions; these instructions may be executed directly, or may  be
24500	assembled  together  into  an  arm program.  Arm programs may then be
24600	executed,  as  desired,  by  the  control  program.     The   control
24700	instructions  may  be  accessed directly by other programs, using the
24800	message procedure mechanism, or in the  form  of  a  symbolic  source
24900	file.
25000	
25100	
25200	
25300	IV.D	SYSTEM REQUIREMENTS
25400	
25500	A  key  element in the development of any large programming effort is
25600	the software support.  There has been continual  effort  along  these
25700	lines  at  the  Stanford  Artificial Intelligence Laboratory and many
25800	useful ideas have been developed.  We propose to extend the  research
25900	along  two  separate lines:  support for research and system software
26000	for operating automated systems.  We will briefly describe  our  past
26100	efforts in this area and what we propose to undertake.
26200	
26300	The  Stanford  Artificial  Intelligence  Laboratory  has pioneered in
26400	several areas of system programming, including  timesharing  systems,
26500	interactive graphics, and programming languages.
26600	
26700	A  great  deal  of  additional effort has gone into direct support of
26800	hand-eye research.   Very early, we established  a  set  of  standard
26900	formats  and  library routines [Pingle 72a].  A programming language,
27000	SAIL[Swinehart], was implemented in 1968.  The language  incorporates
27100	special   features  for  large  real-world-oriented  problem  solving
27200	systems  and  is  currently  in  use  at  a  number   of   Artificial
27300	Intelligence and other laboratories.
27400	
27500	As  we began to assemble larger and more sophisticated collections of
27600	programs, we felt a need  for  flexible  mechanisms  for  cooperating
27700	sequential  processes.    The resulting monitor and language features
27800	[Feldman & Sproull 1971] have  worked  well  for  us  and  have  been
27900	influential  on  other  projects.       Recently,  we  have  added an
28000	additional set of features to SAIL  to  facilitate  non-deterministic
28100	and  event-directed  programming[Feldman 1972].   The early reactions
28200	to this work, both within the laboratory and without have  been  very
28300	encouraging.
28400	
28500	We  expect  relatively  little  work  to be needed on further systems
28600	support for basic research.   There will undoubtedly  be  efforts  to
28700	take  advantage of new hardware and of new programming ideas that may
28800	develop in the course of this program.    Almost  all  of  this  work
28900	should be covered by other funding.
29000	
     

00100	V.	RELATED PROGRAMS IN OTHER ORGANIZATIONS
00200	
00300	Major programs in programmable assembly devices with sensing are:  
00400		1.	Hitachi,  Ltd,  Tokyo,  Japan 
00500		2.	Electrotechnical Laboratory, Tokyo,Japan 
00600		3.	Draper Laboratory, MIT, under James Nevins 
00700		4.	SRI,  Menlo Park,  Calif,  under Dr. Charles Rosen 
00800		5.	IBM, Yorktown Heights, NY,under  Dr.  Peter  Will  
00900		6.	GM  Research  Lab  
01000		7.	MIT  Artificial Intelligence  Laboratory,
01100		  under  Profs B.K.P.Horn and P.H.Winston 
01200		8.	University of Edinburgh, Edinburgh, Scotland with
01300		University of Nottingham, under Prof Donald Michie
01400		9.	University of Rochester, Rochester New York, with Gleason
01500		Works, under Prof Herbert Voelker.
01600	
01700	Hitachi,Ltd has performed important basic and applied research in robotics
01800	and computer perception including:
01900		a system which reads blueprints and constructs a structure
02000			from isolated parts, using vision
02100		a system which packs blocks into a tray, using touch sensing
02200		a system which recognizes objects on a conveyor from top view
02300			and which acts on them accordingly
02400		a system which locates faults in printed circuit boards, and
02500			which appears to be commercially attractive.
02600	Their current effort is in applied research for current problems, including
02700	corporate manufacturing problems.
02800	
02900	Electrotechnical Laboratory, Tokyo, is a government laboratory performing
03000	basic research in robotics and computer perception, including:
03100		manipulator hardware and software development
03200		visual feedback for insertion
03300		recognition of polyhedra using depth data.
03400	
03500	Draper Lab, MIT, has performed basic research in teleoperator control,
03600	and now has a collaborative effort with General Electric and Unimation
03700	to develop an adaptive, programmable modular assembly device with force
03800	sensing.
03900	
04000	SRI has performed basic research in teleoperator control and robotics,
04100	including:
04200		control of a mobile robot, emphasizing problem-solving
04300		teleoperator control including touch and computer interfacing
04400	They now have a multi-client research contract for applied research in
04500	visual inspection from two-dimensional views (top view), and for
04600	visually controlled manipulation, using a Unimate programmable manipulator.
04700	
04800	IBM has performed basic research in vision, and are now engaged in
04900	research in manipulation with sensory input.
05000	
05100	GM has performed basic and applied research in vision, as demonstrated
05200	by a film showing the mounting of an automobile wheel, using visual
05300	We have close contact with all of these laboratories.
05400	
05500	Artificial Intelligence Laboratory, MIT, has done basic and theorectical
05600	work in perception and manipulation including:
05700		perception of line drawings from symbolic input
05800		edge and region systems to obtain line drawings
05900		duplication of towers of blocks from single views.
06000	This fundamental work continues, supplemented by a research project in
06100	mini-robot systems.
06200	
06300	The University of Edinburgh has performed basic research in vision and
06400	manipulation, demonstrated by a film showing assembly of a toy car using
06500	simple vision to identify parts.
06600	
06700	The University of Rochester is engaged in basic research applied
06800	to discrete parts manufacture, addressing the problems of descriptors,
06900	needs, and formalizing the structure of systems for discrete parts
07000	manufacture.
07100	
07200	
07300	
07400	It is of special interest to indicate the relation  of  our  work  to
07500	laboratories  which have industrial clients, such as GM Research Lab,
07600	SRI  and  Draper  Lab.  Their  contacts  are  a  valuable  source  of
07700	information  about industrial problems at the level of implementation
07800	with currently  available  techniques.   Because  of  the  ovelap  of
07900	interests  and  techniques, a two way exchange is possible, since our
08000	research is considerably advanced beyond those projects and will  map
08100	out  solutions  to  problems  to  be  faced  in later phases of their
08200	projects.
     

00100	VI. UTILIZATION  PLAN-DISSEMINATION  OF  RESULTS 
00200	
00300		
00400	There are several other efforts, at varying levels of sophistication,
00500	in the area of computer controlled advanced automation.  The Stanford
00600	Artificial Intelligence Laboratory is the oldest and largest of these
00700	and  has  provided  the  cutting  edge of much of the development. We
00800	intend to continue this role and to lead  in  the  development  of  a
00900	practical   general   purpose  assembly  system  and  the  associated
01000	software.
01100	
01200	All of the discoveries made under this grant will, of course, be made
01300	public.    We view our role in information transfer in a much broader
01400	way.  Having no desire to sell products and services and  no  clients
01500	with   interests  to  protect,  a  university  laboratory  should  be
01600	primarily a place for acquiring and spreading knowledge.
01700	
01800	The Stanford Artificial Intelligence Laboratory has always considered
01900	information transfer to be one of its primary goals.  In addition, to
02000	our published papers and reports, we  have  made  a  number  of  film
02100	reports  which  have  been  extensively  circulated.  There have been
02200	thousands of visitors, ranging  from  elementary  school  classes  to
02300	major  scientific,  governmental  and  industrial  missions from many
02400	countries. We have also encouraged extended visits  by  workers  from
02500	other laboratories and from industry. Members of the laboratory staff
02600	have played a major role in the organization of journals, conferences
02700	and  seminars  in  artificial intelligence.   Many of our algorithms,
02800	systems, and hardware designs have been adopted by other groups.  Our
02900	students are an important contribution to information transfer.
03000	
03100	We have close contacts with SRI (several former students are employed
03200	there) and with Draper Lab, MIT.  These laboratories, with industrial
03300	participants  in  their  research programs, provide the right setting
03400	for transfer to industry.  We have close contact  with  the  computer
03500	science group at GM Research Labs.
03600	
03700	A  development  of  considerable  interest  is that five groups doing
03800	similar research have chosen the PDP-11 as a  research  minicomputer.
03900	We  will  have  immediate relevance to members of this informal robot
04000	user's group.  Our programs will be usable by members and any  others
04100	who  acquire  the  PDP-11.     It  would  be  advantageous for future
04200	purchases of minicomputers for  automation  research,  that  they  be
04300	compatible  with this group.  Our efforts are exportable in a further
04400	sense; the arm servo and planning programs are applicable to  a  wide
04500	range of arms, to the Unimate in particular.
04600	
04700	The   success  of  the  program  proposed  here  depends  heavily  on
04800	interaction with industry.   We will need additional  information  on
04900	the opportunities for automation and will try to involve manfacturers
05000	in the development of the pilot assembly  station.     We  have  good
05100	working  relationships  with  a  number of firms and we expect that a
05200	concrete project will help forge the bonds necessary for the transfer
05300	of  advanced  automation  technology from the laboratory.  During the
05400	initial proposed grant period, we intend to negotiate  a  cooperative
05500	relation with one or more firms.
05600	
05700	One  promising  approach to technology transfer is a staff associates
05800	program.    This involves residence of about a year's duration at the
05900	laboratory  by  industrial  scientists.       Such a program was used
06000	successfully at the MIT, Electronics Research Laboratory in the  area
06100	of  programming  systems  for numerically controlled tools and design
06200	automation.     We have initiated a similar program in the laboratory
06300	(cf Appendix A) and are pursuing additional forms of cooperation.
06400	
     

00100				Appendix A
00200	
00300		The  Stanford  A.I.  Lab  has  been  engaged  in  research on
00400	advanced automation technology.  Our work has progressed to the stage
00500	where  we  are  seriously  engaged  in  developing  and disseminating
00600	practical applications.   To do this effectively, we  will  need  the
00700	help  of industrial organizations with computer sophistication and an
00800	understanding of practical problems.  One form of  cooperation  which
00900	we  are  engaged in is a staff associates program.  A staff associate
01000	is a member of another organization in residence at the A.I. Lab.  We
01100	have  had  a  number  of staff associates over the years, mostly from
01200	foreign countries. The enclosed letter from Japan is typical  of  the
01300	inquiries  we receive.  The purpose of the new program is to invite a
01400	few domestic inductrial organizations to submit  candidates  for  the
01500	staff associates positions.
01600	
01700		We  expect  to be able to have three to five staff associates
01800	in the laboratory at a time.  The associate would remain for about  a
01900	year and would be paid by his sponsoring organization.  He would be a
02000	regular  member  of  the  laboratory  staff,  working  on  automation
02100	problems.
02200	
02300		There  are,  of  course,  academic programs at Stanford which
02400	could also involve work at  the  Artificial  Intelligence  Lab.   The
02500	staff  associate  program  differs in that the selection criteria are
02600	different, the timing more flexible, and the expected time devoted to
02700	course  work  much  less.   We  believe that it is the most effective
02800	mechanism for us to learn from and help industrial  practitioners  of
02900	computer-aided advanced automation.
03000	
03100	
03200				Jerome A. Feldman
     

00100			APPENDIX B 
00200		TWO-CYCLE GASOLINE ENGINE ASSEMBLY
00300	
00400	COMMENT PISTON-CRANK SUBASSEMBLY, RTV, BOLTING TWO HALVES;
00500	
00600	COMPLETION OF THE PISTION-CRANK SUB ASSEMBLY;
00700	    Place the piston and crank shaft subassembly in the vise
00800		(probably require higher sides on vise ... &/or fitted grips)
00900	    Put the sleeve on the clutch side of the shaft
01000	    Put the roller bearing on the clutch side
01100	    Put the metal-rubber seal on the clutch side
01200	    Take off the sleeve
01300	    Put on the large ball bearing on the flywheel side
01400		(appears to be a heat fit ... would involve putting the 
01500		 bearings on a hot plate and using `hot pads' to pick them up)
01600	    Put the metal-rubber seal on the flywheel side
01700	    Take the piston, crank, and bearings subassembly out of the vise
01800	
01900	APPLYING RTV TO THE CASING
02000	    Place the cylinder head casting in the vise
02100		(another fixture for holding the case firmly, without 
02200		 damaging it ... or the paint job)
02300		(at this point may want to use vision or touch to determine
02400		 the final orientation of the case)
02500	    Pick up the RTV roller
02600	    Roll the roller on the palette containing liquid RTV
02700		(need a dispenser which provides just enough for one
02800		 application ... avoids the problem of deciding how much
02900		 you have on the roller)
03000	    Apply RTV to the joint of the casing
03100	    Put down the roller
03200	
03300	JOINING THE TWO HALVES OF THE CASING
03400	    Pick up the piston-crank subassembly and dip the head of 
03500		the piston in an oil bath
03600	    Seat the piston-crank subassembly in the  cylinder
03700		(this requires some WOBBLING)
03800	    Place the bottom  half of the casing on top of the cylinder 
03900		head half (which now contains the piston and crank)
04000		(probably want to use 1 or 2 aligning pins)
04100	    Pick up the screw driver power unit
04200	    Attach the long-shafted driving parts
04300		(this means a socket extension rod and a deep socket)
04400	    Screw in the four main case screws
04500		(need two hands and a torque wrench to torque these screws)
04600	    Return the long-shafted driving parts
04700	    Attach the  extension rod and deep socket for the small screws
04800	    Screw in the four small case screws
04900	    Return the rod and socket
05000	    Return the screwdriver power unit
05100	
     

00100	COMMENT PUT ON THE CLUTCH, POINTS ASSEMBLY,  AND FLYWHEEL;
00200	
00300	PUTTING ON THE CLUTCH
00400	    Put on the inside shim for the clutch
00500		(picking up one shim may be a trick)
00600	    Put on the roller bearings for the clutch
00700	    Put the clutch dish over the roller bearings
00800	    Put on the outside shim for the clutch
00900	    Put on the clutch subassembly
01000		(interesting because it goes inside the dish ... put
01100		 it on the shaft and then push it on the rest of the way)
01200	    Put on the nut to secure the clutch (left-handed threads)
01300		(again need long handled wrench to torgue this to the
01400		 required 300 inch/pounds ... also need to hold on to
01500		 the flywheel (when it gets on) because there is a
01600		 left-handed nut on one end and a right-handed nut on 
01700		 other)
01800	
01900	PUTTING ON THE POINTS SUBASSEMBLY
02000	    Insert the aligning pin for the points assembly
02100	    Put on the points assembly
02200	    Screw in the first points screw
02300	    Take out the aligning pin
02400	    Screw in the second points screw
02500	    Take out the feeler gauge tab (which cames as part of the
02600		points subassembly ... not sure this is going to work)
02700		(it is important to make sure the shaft is still 
02800		 rotated to the proper place ... visual check for slot?)
02900	    Press on the cover to the points assembly
03000		(good reason to have fixture holding case on four sides
03100		 because this will be a strong sideways force)
03200	    Screw in the final points assembly screw
03300	    Screw down the condenser
03400		(this is tricky because the wire holding the condenser
03500		 has to be bent in just the right way (or use two hands)
03600		 ... plus the screw has two washers (magnet hold them?))
03700	
03800	PUTTING ON THE FLYWHEEL
03900	    Insert the key for the flywheel
04000		(picking up the key is a problem (magnet which can be 
04100		 turned on and off ... needlenose fingers ... )
04200	    Put on the flywheel
04300		(visually determine the orientation of the flywheel)
04400		(flywheel probably needs to be tapped on)
04500	    Put on the nut to secure the flywheel
04600	
04700		.
04800		.
04900		.
05000	
     

00100	VIII	VITAE AND BIBLIOGRAPHIES
00200	                     Brief Biographical Sketches
00300	
00400	Jerome A. Feldman, Principal Investigator: Early training  in physics
00500	and  mathematics;  Ph.D.  in  computer  science from Carnegie-Mellon,
00600	1964. Two years at M.I.T. Lincoln Laboratory. At Stanford since 1966,
00700	leader of Robotics group since 1968. currently Associate Professor of
00800	Computer  Science  and   Associate   Director   of   the   Artificial
00900	Intelligence  Lab.   Research interests include Robotics, associative
01000	processing, inductive inference, and Translator-writing systems.
01100	
01200	Thomas  O.   Binford, Associate Investigator: Received PhD in physics
01300	from the University of Wisconsin, 1965, working with strange particle
01400	reactions,  Regge  pole  and  group theory phenomenology.   Fulbright
01500	1965-66 Tata Institute of Fundamental Research, Bombay, India:  phase
01600	shift  analysis  of  strange  particle  systems;  theory  of unstable
01700	particles.  At MIT Artificial Intelligence Project  1967-70,  working
01800	on  representation  of  shape, region-based analysis system and other
01900	areas of computer vision, systems programming for LISP.  Lecturer  in
02000	computer  science  at  Stanford  University.   Research interests are
02100	computer vision, robotics, representation, and perception.
02200	
02300	Richard  P. C. Paul,  Associate Investigator:   Undergraduate work in
02400	Engineering Physics at McGill, Masters in Electrical Engineering  and
02500	PhD in Computer Science at Stanford  University.  From  1963  at  the
02600	Stanford  Linear  Accelerator  Center  as Electronic Engineer. At the
02700	Stanford A. I. Laboratory since 1966 and responsible for  manipulator
02800	systems  development  since 1968. Research interests include Robotics
02900	and digital servo systems.
03000	
03100	John  McCarthy:  BS in Math., Cal Tech, PhD in Math, Princeton, 1951.
03200	With Minsky,  organized  and  directed  the  Artificial  Intelligence
03300	Project  at MIT.  Joined Stanford as Professor of Computer Science in
03400	1962.   Organized and directs the  Stanford  Artificial  Intelligence
03500	Lab.   Research  interests  include  nearly all aspects of artificial
03600	intelligence,   timesharing   systems,   mathematical    theory    of
03700	computation, and representation theory.
03800	
03900	Victor  Scheinman:  Bachelor's  in  Electrical  Engineering,  M.I.T.,
04000	Engineer's in Mechanical Engineering from Stanford, 1969.    Employed
04100	as  a  design  engineer  at Stanford, M.I.T., and Raychem since 1969.
04200	Responsible for the design and construction  of  computer  controlled
04300	arms, as well as other Robotics equipment such as color-wheels, focus
04400	controls, pan-tilt heads, etc.
04500	
04600	Lester Earnest:   BS in  Electrical  Engineering,  Cal  Tech;  MS  in
04700	Electrical  Engineering,  MIT,  1960.     Two  years  at  MIT Lincoln
04800	Laboratory.  Seven years at Mitre  Corporation,  ending  as  Head  of
04900	Information  Systems Department.  At Stanford since 1965 as Executive
05000	Officer  and  Associate  Director  of  the  Artificial   Intelligence
05100	Laboratory,  Research  Computer  Scientist,  and Lecturer in Computer
05200	Science.  Responsible for administration and industrial liason.
05300	
05400	
05500	
     

     

     

     

     

     

     

     

     

     

     

     

00100	
00200			REFERENCES
00300	
00400	[Alexander]  Tom  Alexander,  "The  Hard  Road  to  Soft Automation",
00500	
00600	[Anderson 1972] R. Anderson,"Programmable Automation, The Future
00700	of Computers in Manufacturing", Datamation, Dec 1972.
00800	
00900	[Agin] G. Agin, "Description and Representation of  Curved  Objects",
01000	Artificial Intelligence Laboratory, Stanford University, AIM-134,
01100	October 1972.
01200	
01300	
01400	[Bajcsy 1972] "Computer Identification of Visual Texture" 
01500	AIM-180,Artificial Intelligence Laboratory, Stanford University,
01600	October 1972.
01700	
01800	[Baumgart 1972a] B. Baumgart, "GEOMED - A Geometric Editor", May 1972.
01900	SAILON-68,Artificial Intelligence Lab, Stanford University,
02000	
02100	[Baumgart 1972b] Baumgart, Bruce G., WINGED EDGE POLYHEDRON REPRESENTATION, 
02200	AIM 179,Artificial Intelligence Lab, Stanford University,October 1972.
02300	
02400	[Binford 1972]"Sensor Systems for  Manipulation",  Conference  on  Remotely
02500	Manned Systems, JPL, Pasadena, Calif, Sept 1972.
02600	
02700	[Binford 1971] "Visual  Perception  by  Computer",  Invited  paper IEEE
02800	Systems Science and Cybernetics, Miami, Dec 1971.
02900	
03000	[Binford 1970] T.O.Binford, "Ranging by Laser", Internal Report,
03100	Artificial Intelligence Lab, Stanford University, Oct 1970.
03200	
03300	[Clowes] M.B. "On Seeing Things"  AI Journal,1971.
03400	
03500	[Earnest 1967] L.D.Earnest,"Choosing an eye for a Computer";
03600	AI Memo 51, Artificial Intelligence Lab, Stanford University, 1967.
03700	
03800	[Falk 1971] G. Falk, "Scene Analysis Based on Imperfect Edge Data", Proc. 2IJCAI,
03900	Brit. Comp. Soc., Sept. 1971.
04000	
04100	[Feldman 1972] with others,"Recent Developments in SAIL-An Algol-Based 
04200	Language for Artificial Intelligence", (with others).
04300	CS 308, Stanford University, August 1972.
04400	To appear in Proc. Fall Joint Computer Conference, 1972.
04500	
04600	[Gill] Gill, Aharon, Visual Feedback and Related Problems in Computer-
04700	Controlled Hand Eye Coordination, AIM  178,October 1972.
04800	
04900	[Grape 1969] "Computer Vision through Sequential Abstraction",
05000	Artificial Intelligence Laboratory, Internal Report, 1969.
05100	
05200	[Grape 1970] "On predicting and Verifying Missing Elements in Line-Drawings"
05300	Artificial Intelligence Laboratory, Internal Report, March 1970.
05400	
05500	[Grape 1973] "Computer Vision through Sequential Abstraction"
05600	Thesis, Computer Science Department, Stanford University, 1973.
05700	
05800	[Guzman] A. Computer recognition of three-dimensional objects
05900	in a visual scene. MAC-TR-59 (THESIS), Project MAC, Massachusetts
06000	Institute of Technology, Cambridge, Massachusetts, (December).1968.
06100	
06200	[Horn 1971], B.K.P. "The Binford-Horn Linefinder" MIT Vision Flash 16.
06300	
06400	[Hueckel] M.H. Hueckel, "An Operator Which Locates Edges in Digitized
06500	Pictures",  Stanford  Artificial  Intelligence  Laboratory   AIM-105,
06600	December 1969, JACM, Vol. 18, No. 1, January 1971.
06700	
06800	[Huffman], D.A.  "Impossible objects as nonsense sentences" Machine
06900	Intelligence 6.
07000	
07100	[Minsky 1972] "Artificial Intelligence Progress Report", AI Memo 252,
07200	MIT AI Lab, (1972);
07300	
07400	[Nevatia 1973] R.K.Nevatia and T.O.Binford, "Structured Descriptions of
07500	Complex Objects", Submitted to Third IJCAI, February 1973.
07600	
07700	[Paul]  R.   Paul,  "Trajectory  Control  of  a  Computer  Arm",  2nd
07800	International Joint Conference on Artificial Intelligence, 1971.
07900	
08000	[Paul] R. Paul, "Modelling, Trajectory Calculation and Servoing of  a
08100	Computer  Controlled  Arm",  Ph.D.   Thesis,  Computer Science Dept.,
08200	Stanford University, Sept. 1972.
08300	
08400	[Perkins] W.A.Perkins and T.O.Binford, "A Corner Finder for Visual
08500	Feedback", to be published in USA-Japan Vision Conference proceedings,
08600	July 1973.
08700	
08800	[Pingle   1972a]   Karl   K.  Pingle,  "Hand/Eye  Library",  Stanford
08900	Artificial Intelligence  Laboratory  Operating  Note  35.1,  January,
09000	1972.
09100	
09200	[Pingle  1972b] K.K. Pingle and J.M. Tenenbaum, "An Accomodating Edge
09300	Follower", IJCAI-2. Proceedings of the 2nd.  International  Symposium
09400	on Industrial Robots, May 1972, Chicago, Illinois.
09500	
09600	[Quam 1972] L. H. Quam, S. Liebes, Jr., R. B. Tucker, M.  J.  Hannah,
09700	B.  G.  Eross,  "Computer  Interactive  Picture Processing", Stanford
09800	Artificial Intelligence Laboratory AIM-166, April 1972.
09900	
10000	[Roberts 1963], L.G. Machine perception of three-dimensional solids.
10100	Technical Report No. 315, Lincoln Laboratory, M.I.T. (May)
10200	Also in Optical and Electro-Optical Information Proecesing,
10300	Tippett, J.T. et. al.(Eds.), MIT Press, Cambridge, Mass., 1965,
10400	
10500	[Scheinman] V.  D.  Scheinman,  Design  of  a  Computer  Manipulator,
10600	Stanford Artificial Intelligence Project, Memo AIM-92, June 1969.
10700	
10800	[Sobel] Irwin Sobel, "Camera Models and Machine Perception", Stanford
10900	Artificial Intelligence Project Memo AIM-121, May, 1970.
11000	
11100	[Shirai 1971a] "Recognition of Polyhedra with a Range Finder"
11200	Y. Shirai and M. Suwa, Internation Joint Conference on AI, London,
11300	Sept 1971.
11400	
11500	[Shirai 1972] "A heterarchical program for Recognition of Polyhedra",
11600	Y. Shirai, Artificial Intelligence Laboratory, MIT, Memo 263.
11700	
11800	[Swinehart] D. Swinehart, R.  Sproull,  "SAIL",  Stanford  Artificial
11900	Intelligence Laboratory Operating Note 57, November 1969.
12000	
12100	[Tenenbaum]
12200	J.M.Tenenbaum,"Accommodation in Computer Vision",
12300	Artificial Intelligence Lab, Stanford University, AIM-134 September 1970.
12400	
12500	[Waltz] "Generating Semantic Descriptions from Drawings of Scenes
12600	with Shadows", D.L.Waltz, Artificial Intelligence Laboratory, MIT
12700	AI TR-271.
12800	
12900	[Yakimovsky 1972] Y.Yakimovsky and J.A.Feldman, 
13000	"A Semantics-Based Decision Theoretic Region Analyzer" 
13100	Submitted to Third IJCAI, February,1973
     

00100	IX. RELEVANT LABORATORY PUBLICATIONS
00200	
00300	The   following   articles  published  by  members  of  the  Stanford
00400	Artificial Intelligence Laboratory are relevant to this proposal.
00500	
00600	J.   McCarthy, "Computer Control of a Hand and Eye," in  Proc.  Third
00700	All-Union  Conference  on  Automatic Control (Technical Cybernetics),
00800	Nauka, Moscow, 1967 (Russian).
00900	
01000	J.  Feldman (with D. Gries), "Translator Writing Systems", Comm. ACM,
01100	February 1968.
01200	
01300	J.  Feldman  (with  P.  Rovner),  "The Leap Language Data Structure",
01400	Proc. IFIP Congress, 1968.
01500	
01600	J.  McCarthy, L. Earnest, D. Reddy, and P. Vicens, "A  Computer  with
01700	Hands, Eyes, and Ears", Proc. AFIPS Conf. (FJCC), 1968.
01800	
01900	K.   Pingle,  J.   Singer,  and  W.  Wichman,  "Computer Control of a
02000	Mechanical Arm through Visual Input", Proc. IFIP Congress 1968.
02100	
02200	J. Feldman, G. Feldman, G. Falk, G. Grape, J. Pearlman, I. Sobel, and
02300	J.    Tenenbaum, "The Stanford Hand-Eye Project", Proc. International
02400	Conf.  on Artificial Intelligence, Washington, D.C., 1969.
02500	
02600	J.   Feldman  (with  P.    Rovner),   "An   Algol-based   Associative
02700	Language", Comm. ACM, August 1969.
02800	
02900	U.   Montanari,  "Continuous  Skeletons from Digitized Images", JACM,
03000	October 1969.
03100	
03200	R.  Paul, G. Falk, J. Feldman, "The Computer Representation of Simply
03300	Described  Scenes",  Proc.    2ND Illinois Graphics Conference, Univ.
03400	Illinois, April 1969.
03500	
03600	K.     Pingle,  "Visual  Perception  by  a  Computer",  in  Automatic
03700	Interpretation  and  Classification  of  Images,  Academic Press, New
03800	York, 1970.
03900	
04000	U. Montanari, "A Note on Minimal Length Polygonal Approximation to  a
04100	Digitized Contour", Comm. ACM, January 1970.
04200	
04300	U.   Montanari,  "On Limit Properties in Digitization Schemes", JACM,
04400	April 1970.
04500	
04600	U.  Montanari, "Separable Graphs, Planar Graphs  and  Web  Grammars",
04700	Information and Control, May 1970.
04800	
04900	U.  Montenari, "Heuristically Guided Search and Chromosome Matching",
05000	J. Artificial Intelligence, Vol. 1, No. 4, December 1970.
05100	
05200	G. Falk, "Scene Analysis Based on Imperfect Edge Data", Proc. 2IJCAI,
05300	Brit. Comp. Soc., Sept. 1971.
05400	
05500	J.   Feldman  and  R.   Sproull,  "System  Support  for  the Stanford
05600	Hand-eye System", Proc. 2IJCAI, Brit. Comp. Soc., Sept. 1971.
05700	
05800	J. Feldman, et al, "The Use of Vision and Manipulation to  Solve  the
05900	`Instant  Insanity'  Puzzle",  Proc.  2IJCAI, Brit. Comp. Soc., Sept.
06000	1971.
06100	
06200	M. Hueckel, "An Operator which Locates Edges in Digitized  Pictures",
06300	JACM, January 1971.
06400	
06500	
06600	M.  Kahn  and  B.  Roth,  "The Near-minimum-time Control of Open-loop
06700	Articulated Kinematic Chains", Trans. ASME, Sept. 1971.
06800	
06900	U. Montanari, "On the Optimal Detection of Curves in Noisy Pictures",
07000	Comm. ACM, May 1971.
07100	
07200	N.  Nilsson,  "Problem-solving  Methods  in Artificial Intelligence",
07300	McGraw-Hill, New York, 1971.
07400	
07500	R.  Paul, "Trajectory Control of a Computer Arm", Proc. 2IJCAI, Brit.
07600	Comp. Soc., Sept. 1971.
07700	
07800	K.  Pingle  and J.  Tenenbaum, "An Accomodating Edge Follower", Proc.
07900	2IJCAI, Brit. Comp. Soc., Sept. 1971.
08000	
08100	B. Roth, "Design,  Kinematics,  and  Control  of  Computer-controlled
08200	Manipulators",  Proc.  6th  All  Union  Conference on New Problems in
08300	Theory of Machines & Mechanics, Leningrad, Jan. 1971 (in press).
08400	
08500	J. Tenenbaum, et, al, "A Laboratory  for  Hand-eye  Research",  Proc.
08600	IFIP Congress 1971.
08700	
08800	G.    Falk,   "Interpretation   of   Imperfect   Line   Data   as   a
08900	Three-Dimensional Scene", J. Artificial Intelligence, Vol. 3, No.  2,
09000	1972.
09100	
09200	J.  Gips,  "A  New Reversible Figure", Perceptual & Motor Skills, 34,
09300	306, 1972.
09400	
09500	
09600	
09700	
09800	
09900	
10000	
10100	
10200	
10300	
10400	
10500	
10600	
10700	
10800	
10900	
11000	
11100	
11200	
11300	
11400	
11500	
11600	
11700	
11800	
11900	
12000	
12100	
12200	
12300	
12400	
12500	
     

00100	X. FILMS
00200	
00300	Prints  of  the  following films are available for short-term loan.
00400	
00500	1.  Art Eisenson and Gary Feldman, "Ellis D. Kroptechev and Zeus, his
00600	      Marvelous  Time-Sharing  System",  16mm  black  and  white with
00700	      sound, 15 minutes, March 1967.
00800	
00900	2.  Gary Feldman, "Butterfinger", 16mm color with sound,  8  minutes,
01000	      March 1968.
01100	
01200	3.  Raj Reddy, Dave Espar and Art Eisenson, "Hear Here",  16mm  color
01300	      with sound, 15 minutes, March 1969.
01400	
01500	4.  Gary Feldman and Donald Peiper, "Avoid", 16mm  silent,  color,  5
01600	      minutes, March 1969.
01700	
01800	5.  Richard Paul and Karl Pingle, "Instant Insanity",  16  mm  color,
01900	silent, 6 minutes, August, 1971.
02000	
02100	6.  Suzanne Kandra, "Motion and  Vision",  16  mm  color,  sound,  22
02200	minutes, November 1972.
02300	
02400	7.  Karl Pingle, "Automated Pump Assembly by the Stanford Artificial 
02500	Intelligence Project,"  16mm color, silent, 7 minutes, May 1973.
02600	
02700	
02800	
02900	
03000	
03100	
03200	
03300	
03400	
03500	
03600	
03700	
03800	
03900	
04000	
04100	
04200	
04300	
04400	
04500	
04600	
04700	
04800	
04900	
05000	
05100	
05200	
05300	
05400	
05500	
05600	
05700	
05800	
     

00100	XI.  RECENT REPORTS
00200	
00300	The following reports have been published by the Stanford Artificial
00400	Intelligence Laboratory since 1971.
00500	
00600	
00700	AIM-140,   Roger   C.   Schank,   INTENTION,   MEMORY,  AND  COMPUTER
00800	UNDERSTANDING, January 1971, 59 pages.
00900	
01000	AIM-141,  Bruce  G.  Buchanan,  Edward  A.  Feigenbaum,  and   Joshua
01100	Lederberg,  THE  HEURISTIC  DENDRAL   PROGRAM  FOR EXPLAINING
01200	EMPIRICAL DATA, February 1971, 20 pages.
01300	
01400	AIM-142,  Robin Milner, AN ALGEBRAIC DEFINITION OF SIMULATION BETWEEN
01500	PROGRAMS, February 1971, 21 pages.
01600	
01700	AIM-143.  John McCarthy, Arthur Samuel  and  Artificial  Intelligence
01800	Project staff,  Edward  Feigenbaum   and   Heuristic  Dendral
01900	Project staff, Project Technical Report, MARCH 1971, 80 pages.
02000	(out of print).
02100	
02200	AIM-144.  Lynn H. Quam, COMPUTER COMPARISON OF PICTURES,   May  1971,
02300	120 pages.
02400	
02500	AIM-145,  Bruce  G.  Buchanan,  Edward  A.  Feigenbaum,  and   Joshua
02600	Lederberg, A HEURISTIC PROGRAMMING STUDY OF THEORY  FORMATION
02700	IN SCIENCE, June 1971, 41 pages.
02800	
02900	AIM-146, Andrei P. Ershov, PARALLEL PROGRAMMING, July 1971, 14 pages.
03000	
03100	AIM-147,  Robert  E. Kling, REASONING BY ANALOGY WITH APPLICATIONS TO
03200	HEURISTIC  PROBLEM   SOLVING:   A  CASE  STUDY,   August 1971,
03300	191 pages.
03400	
03500	AIM-148, Edward Ashcroft, Zohar Manna,  and  Amir  Pneuli,  DECIDABLE
03600	PROPERTIES OF MONADIC FUNCTIONAL SCHEMAS,  July  1971,
03700	10 pages.
03800	
03900	AIM-149, Rodney Albert Schmidt, Jr., A STUDY OF THE REAL-TIME CONTROL
04000	OF A COMPUTER-DRIVEN VEHICLE, August 1971, 180 pages.
04100	
04200	AIM-150, Robert  W.  Floyd,  TOWARD  INTERACTIVE  DESIGN  OF  CORRECT
04300	PROGRAMS, September 1971, 12 pages.
04400	
04500	AIM-151, Ralph L. London, CORRECTNESS OF TWO  COMPILERS  FOR  A  LISP
04600	SUBSET, October 1971, 41 pages.
04700	
04800	AIM-152, A.W. Biermann, ON THE  INFERENCE  OF  TURING  MACHINES  FROM
04900	SAMPLE COMPUTATIONS, October 1971, 31 pages.
05000	
05100	AIM-153,  Patrick J. Hayes, THE FRAME PROBLEM AND RELATED PROBLEMS IN
05200	ARTIFICIAL INTELLIGENCE, November 1971, 18 pages.
05300	
05400	AIM-154,  Zohar  Manna,  Stephen  Ness  and Jean Vuillemin, INDUCTIVE
05500	METHODS  FOR  PROVING  PROPERTIES OF PROGRAMS, November 1971,
05600	24 pages.
05700	
05800	AIM-155, Jonathan Leonard Ryder, HEURISTIC ANALYSIS OF LARGE TREES AS
05900	GENERATED IN THE GAME OF GO, December 1971, 300 pages.
06000	
06100	
06200	AIM-156,  Kenneth Mark Colby, Franklin Dennis Hilf, Sylvia Weber, and
06300	Helena C. Kraemer,  A  RESEMBLANCE TEST  FOR  THE  VALIDATION
06400	OF   A   COMPUTER   SIMULATION   OF   PARANOID     PROCESSES,
06500	November 1971, 29 pages.
06600	
06700	AIM-157, Yorick Wilks, ONE SMALL HEAD----SOME REMARKS ON THE  USE  OF
06800	`MODEL' IN LINGUISTICS, December 1971, 17 pages.
06900	
07000	AIM-159,  J.A.  Feldman  and  Paul  C.  Shields, TOTAL COMPLEXITY AND
07100	INFERENCE OF BEST PROGRAMS, April 1972.
07200	
07300	AIM-160,  J. Feldman, AUTOMATIC PROGRAMMING, February 1972, 20 pages.
07400	
07500	AIM-161, Y. Wilks, AN ARTIFICIAL  INTELLIGENCE  APPROACH  TO  MACHINE
07600	TRANSLATION, February 1972, 44 pages.
07700	
07800	AIM-162, Roger Schank, Neil Goldman, Chuck  Reiger,  Chris  Reisbeck,
07900	PRIMITIVE    CONCEPTS    UNDERLYING    VERBS    OF   THOUGHT,
08000	April 1972, 102  pages.
08100	
08200	AIM-163, J.M. Cadiou, RECURSIVE DEFINITIONS OF PARTIAL FUNCTIONS  AND
08300	THEIR COMPUTATIONS, April 1972, 160 pages.
08400	
08500	AIM-164,  Zohar Manna  and  Jean  Vuillemin, FIXPOINT APPROACH TO THE
08600	THEORY OF COMPUTATION, April 1972, 29 pages. 
08700	
08800	AIM-165, D,A, Bochvar, TWO  PAPERS  ON  PARTIAL  PREDICATE  CALCULUS,
08900	April 1972, 50 pages.
09000	
09100	AIM 166, Lynn H. Quam, Sidney Liebes, Jr., Robert B.  Tucker,  Marsha
09200	Jo  Hannah,  Botond G. Eross,   COMPUTER  INTERACTIVE PICTURE
09300	PROCESSING, April 1972, 40 pages.
09400	
09500	AIM-167,  Ashok  Chandra,  EFFICIENT  COMPILATION OF LINEAR RECURSIVE
09600	PROGRAMS, June 1972, 43 pages.
09700	
09800	AIM-168,  Shigeru Igarashi, ADMISSIBILITY OF FIXED-POINT INDUCTION IN
09900	FIRST-ORDER LOGIC OF TYPED THEORIES, May 1972, 40 pages.
10000	
10100	AIM-169, Robin Milner, LOGIC FOR COMPUTABLE  FUNCTIONS.   DESCRIPTION
10200	OF A MACHINE IMPLEMENTATION, May 1972, 36 pages.
10300	
10400	AIM-170, Yorick Wilks,  LAKOFF  ON  LINGUISTICS  AND  NATURAL  LOGIC,
10500	June 1972, 19 pages.
10600	
10700	AIM-171, Roger Schank, ADVERBS AND BELIEF, June 1972, 30 pages.
10800	
10900	AIM-172, Sylvia Weber Russell, SEMANTIC CATEGORIES OF NOMINALS FOR
11000	CONCEPTUAL DEPENDENCY ANALYSIS OF NATURAL LANGUAGE, July 1972,
11100	64 pages.
11200	
11300	AIM-173, Gerald Jacob Agin,  REPRESENTATION AND DESCRIPTION OF CURVED
11400	         OBJECTS, October 1972, 
11500	
11600	AIM-174,  Morris, Francis Lockwood,  CORRECTNESS  OF  TRANSLATIONS OF
11700	         PROGRAMMING LANGUAGES -- AN ALGEBRAIC APPROACH, August 1972,
11800	         124 p.
11900	
12000	AIM-175, Tanaka, Hozumi, HADAMARD TRANSFORM FOR SPEECH WAVE ANALYSIS,
12100	         August 1972, 34 pages.
12200	
     

00100	AIM-176, Feldman, J.A., Low, J.R., Swinehart, D.C., Taylor, R.H.,
00200	         RECENT DEVELOPMENTS IN SAIL.  AN ALGOL-BASED LANGUAGE FOR
00300	         ARTIFICIAL INTELLIGENCE, (forthcoming).
00400	
00500	AIM-177, Paul, Richard, MODELLING, TRAJECTORY CALCULATION AND SERVOING
00600	         OF A COMPUTER CONTROLLED ARM, (forthcoming)
00700	
00800	
00900	AIM-178, Gill, Aharon, VISUAL FEEDBACK AND RELATED PROBLEMS IN COMPUTER
01000	         CONTROLLED HAND EYE COORDINATION, October 1972, 134 pages.
01100	
01200	AIM-179, Baumgart, Bruce G., WINGED EDGE POLYHEDRON REPRESENTATION, 
01300	         October 1972, 46 pages.
01400	
01500	AIM-180, Bajcsy, Ruzena, COMPUTER IDENTIFICATION OF TEXTURED VISUAL
01600	         SCENES, October 1972, 156 pages.
01700	
01800	
01900	
02000	
02100	
02200	
02300	
02400	
02500	
02600	
02700	
02800	
02900	
03000	
03100	
03200	
03300	
03400	
03500	
03600	
03700	
03800	
03900	
04000	
04100	
04200	
04300	
04400	
04500	
04600	
04700	
04800	
04900	
05000	
05100	
05200	
05300	
05400	
05500